package com.gcb.common.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.ToString;

/**
 * 统一结果返回枚举
 *
 * @author cz
 * @since 1.8 2024/03/8
 */
@Getter
@NoArgsConstructor
@AllArgsConstructor
@ToString
public enum ResultEnum {
    // 通信成功后 返回的信息
    SUCCESS(200, "成功"),
    FAIL(500, "服务器未知异常，请联系管理员"),

    // 200 成功提示
    INSERT_SUCCESS(200, "新增成功"),
    UPDATE_SUCCESS(200, "操作成功"),
    DELETE_SUCCESS(200, "删除成功"),

    // 10xx token错误
    LOGIN_AURH(1001, "尚未登录,请登录后重试"),
    LOGIN_ACL(1002, "没有权限"),
    LOGIN_TIME_OUT(1003, "登录超时，请重新登录"),
    TOKEN_INVALID_ERROR(1004, "您的账户在其他设备登录，请重新登录"),
    REQUEST_SOURCE_ERROR(1005, "非法来源请求"),
    TOKEN_ANALYSIS_ERROR(1006, "网关解析错误"),


    // 1xxx 服务器错误
    BAD_SQL_GRAMMAR_ERROR(1001, "SQL语法错误"),
    BAD_SQL_FOREIGNKEY_ERROR(1002, "SQL数据完整性约束错误"),
    EXPORT_DATA_ERROR(1003, "数据导出失败"),
    SERVLET_ERROR(1004, "Servlet请求异常"),
    UPLOAD_ERROR(1005, "文件上传错误"),
    UPLOAD_FILE_ERROR(1006, "文件删除失败"),
    SERVER_ERROR(1007, "服务器繁忙..."),

    // 20xx 参数非空错误
    USERNAME_NULL_ERROR(2001, "用户名不能为空"),
    PASSWORD_NULL_ERROR(2002, "密码不能为空"),
    ACCOUNT_NULL_ERROR(2003, "账号不能为空"),
    PHONE_NULL_ERROR(2004, "手机号码不能为空"),
    IDCARD_NULL_ERROR(2005, "身份证号码不能为空"),
    CODE_NULL_ERROR(2006, "验证码不能为空"),


    // 21xx 参数请求错误
    PARAMETER_ERROR(2100, "数据校验不通过"),
    USERNAME_NOEXIST_ERROR(2101, "用户名不存在"),
    USERNAME_DISABLE_ERROR(2102, "账号已被封禁,请联系客服"),
    PASSWORD_ERROR(2103, "密码不正确"),
    IDCARD_ACCOUNT_EXIST_ERROR(2104, "账号或者身份证号码已被使用"),
    CODE_EXIST_ERROR(2105, "手机验证码已获取"),
    CODE_NOTEXIST_ERROR(2105, "手机短信验证码暂未获取"),
    CODE_ERROR(2106, "验证码不正确"),

    ALIYUN_REQUEST_ERROR(2110, "阿里云短信服务响应失败"),
    ALIYUN_OFTEN_ERROR(2111, "短信发送过于频繁"),
    ALIYUN_SEND_ERROR(2112, "短信发送失败"),


    // 3xxx 操作系统错误
    SERVICE_ERROR(3001, "服务开小差啦"),
    DATA_ERROR(3002, "数据异常"),
    DATA_UPDATE_ERROR(3003, "数据版本异常"),
    UNKNOWN_ERROR(3004, "未知错误"),

    // 4xxx 请求错误
    HANDLE_DELETE_ERROR(4001, "删除失败"),
    HANDLE_UPDATE_ERROR(4002, "更新失败"),
    HANDLE_SELECT_ERROR(4003, "查询失败"),
    HANDLE_INSERT_ERROR(4004, "新增失败"),


    ;

    private Integer code;
    private String msg;
}

